package Client;

import java.util.Date;

import XML.XML;

/**
 * 服务器返回消息事件处理接口
 * 
 * @author Administrator
 * 
 */
public interface msgRev {
	/**
	 * 申请添加好友通过事件
	 * 
	 * @param msg
	 */
	abstract void allowFellow(String userID, XML msg);

	/**
	 * 在别处登录，强迫下线
	 * 
	 * @param msg
	 */
	abstract void drop(XML msg);

	/**
	 * 用户状态被改变
	 * 
	 * @param userId
	 *            对方用户名
	 * @param flag
	 *            状态码：0在线 1离开 2隐身 3下线
	 */
	void fettleChange(String userId, int flag);

	/**
	 * 好友上线
	 * 
	 * @param UserID
	 * @param msg
	 */
	abstract void fllowOline(String UserID, XML msg);

	/**
	 * 群消息到达事件
	 * 
	 * @param groupmsg
	 */
	abstract void groupMessage(int id, String userID, XML msg);

	/**
	 * 好友消息事件
	 * 
	 * @param msg
	 */
	abstract void message(String userID, XML msg);

	/**
	 * 好友下线
	 * 
	 * @param UserID
	 * @param msg
	 */
	abstract void onlineDown(String UserID, XML msg);

	/**
	 * 获得资源种子事件
	 * 
	 * @param md5
	 *            资源MD5
	 * @param address
	 *            IP地址
	 * @param port
	 *            文件服务端口
	 * @param UserID
	 *            所有者
	 */
	abstract void resPip(String md5, String address, int port, String UserID, XML data);

	/**
	 * 消息到达
	 * 
	 * @param userId
	 *            对方用户名
	 * @param msg
	 *            发言内容
	 * @param time
	 *            发言时间
	 */
	void Revmsg(String userId, String msg, Date time);

	/**
	 * 搜索结果返回事件
	 * 
	 * @param id
	 *            表格集合索引
	 * @param UserID
	 *            资源所有者
	 * @param sr
	 *            资源数据
	 * @return
	 */
	abstract void SResault(int id, String UserID, XML sr);

	/**
	 * 系统信息
	 * 
	 * @param msg
	 */
	void sysMsg(String msg);

	/**
	 * 系统消息触发事件
	 * 
	 * @param msg
	 */
	abstract void sysMsg(XML msg);
}
